// This File is part of the "nyaqt" Project
// 
// Copyright  2009 sometmes@gmail.com
// All rights reserved
// 
// This library is free software; you can redistribute it and/or modify
// it under the terms of the GNU Lesser General Public License as published
// by the Free Software Foundation; either version 2.1 of the License, or
// (at your option) any later version.
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.
// 
// You should have received a copy of the GNU General Public License
// along with this program.  If not, see <http://www.gnu.org/licenses/>.

using System;
using System.Collections.Generic;
using System.Text;
using EnvDTE;

namespace SmAddin
{
    class DteHelper
    {
        public static string GetHierarchyItemPath(object item)
        {
            UIHierarchyItem uiHierarchyItem = item as UIHierarchyItem;
            if (uiHierarchyItem.Object is EnvDTE.ProjectItem)
            {
                EnvDTE.ProjectItem projectItem = uiHierarchyItem.Object as EnvDTE.ProjectItem;
                string localPath = null;
                try
                {
                    localPath = projectItem.get_FileNames(1);
                }
                catch
                {
                    try
                    {
                        localPath = projectItem.get_FileNames(0);
                    }
                    catch
                    {
                        throw new ApplicationException("Cannot get file path");
                    }
                }
                return localPath;
            }
            else if (uiHierarchyItem.Object is EnvDTE.Project)
            {
                EnvDTE.Project prj = uiHierarchyItem.Object as EnvDTE.Project;
                return prj.FileName;
            }
            else if (uiHierarchyItem.Object is EnvDTE.Solution)
            {
                EnvDTE.Solution sln = uiHierarchyItem.Object as EnvDTE.Solution;
                return sln.FileName;
            }
            return null;
        }

        public static object[] SelectedItemsInSolutionExplorer(EnvDTE80.DTE2 DTE)
        {
            UIHierarchy uiHierarchy = null;
            uiHierarchy = DTE.Windows.Item(Constants.vsWindowKindSolutionExplorer).Object as UIHierarchy;
            object[] selectedItems = uiHierarchy.SelectedItems as object[];
            return selectedItems;
        }

        public static string[] GetHierarchyItemPath(object[] item)
        {
            throw new Exception("not implemented");
        }
    }
}
